From 2edeb59f757f81ea390acb20a98e500e438babb8 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Tue, 31 Oct 2006 22:25:21 -0700 Subject: [PATCH] [IA64] Fix a bug in INIT handler I found a bug in INIT handler. This bug sometimes occurs on the following conditions. 1. Create a domVTi 2. Run a user program on domVTi 3. Push to INIT switch When this bug occurs, Xen shows error messages. This bug occurs if a vCPU of domVTi runs on a pCPU where its INIT interruption have not occurred yet. It is because "arch._thread.on_ustack" member in vcpu structure is always zero and, accordingly, ar.bspstore doesn't switch to Xen RBS in the MINSTATE_START_SAVE_MIN_PHYS. This patch adds a checking of ipsr.vm bit into the MINSTATE_START_SAVE_MIN_PHYS for domVTi. If ipsr.vm bit is 1, ar.bspstore is switched to Xen RBS. Signed-off-by: Masaki Kanno --- xen/arch/ia64/linux-xen/minstate.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xen/arch/ia64/linux-xen/minstate.h b/xen/arch/ia64/linux-xen/minstate.h index b229b2d417..5c582e2a40 100644 --- a/xen/arch/ia64/linux-xen/minstate.h +++ b/xen/arch/ia64/linux-xen/minstate.h @@ -38,6 +38,8 @@ */ #ifdef XEN # define MINSTATE_START_SAVE_MIN_PHYS \ +(pKStk) tbit.z pKStk,pUStk=r29,IA64_PSR_VM_BIT; \ + ;; \ (pKStk) movl r3=THIS_CPU(ia64_mca_data);; \ (pKStk) tpa r3 = r3;; \ (pKStk) ld8 r3 = [r3];; \ -- 2.30.2